<html>
<head><meta charset="utf-8"><title>anonymize_late_bound_regions · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html">anonymize_late_bound_regions</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="215007110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215007110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215007110">(Oct 29 2020 at 18:15)</a>:</h4>
<p>Anyone know why <code>anonymize_late_bound_regions</code> assigns starting at 1?</p>



<a name="215007349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215007349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215007349">(Oct 29 2020 at 18:16)</a>:</h4>
<p>See <a href="https://github.com/rust-lang/rust/blob/a53fb30e3bf2655b0563da6d561c23cda5f3ec11/compiler/rustc_symbol_mangling/src/v0.rs#L207">comment</a></p>



<a name="215007411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215007411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215007411">(Oct 29 2020 at 18:17)</a>:</h4>
<p>And <a href="https://github.com/rust-lang/rust/blob/a53fb30e3bf2655b0563da6d561c23cda5f3ec11/compiler/rustc_symbol_mangling/src/v0.rs#L330">comment</a></p>



<a name="215009070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215009070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215009070">(Oct 29 2020 at 18:29)</a>:</h4>
<p>yeah, that seems interesting to me, cc <span class="user-mention" data-user-id="116009">@nikomatsakis</span> probably <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="215009092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215009092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215009092">(Oct 29 2020 at 18:30)</a>:</h4>
<p>probably because it is easier to implement <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="215009157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215009157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215009157">(Oct 29 2020 at 18:30)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">            </span><span class="bp">self</span><span class="p">.</span><span class="n">replace_late_bound_regions</span><span class="p">(</span><span class="n">sig</span><span class="p">,</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="n">counter</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w">                </span><span class="bp">self</span><span class="p">.</span><span class="n">mk_region</span><span class="p">(</span><span class="n">ty</span>::<span class="n">ReLateBound</span><span class="p">(</span><span class="n">ty</span>::<span class="n">INNERMOST</span><span class="p">,</span><span class="w"> </span><span class="n">ty</span>::<span class="n">BrAnon</span><span class="p">(</span><span class="n">counter</span><span class="p">)))</span><span class="w"></span>
<span class="w">            </span><span class="p">})</span><span class="w"></span>
<span class="w">            </span><span class="p">.</span><span class="mi">0</span><span class="w"></span>
</code></pre></div>



<a name="215009159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215009159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215009159">(Oct 29 2020 at 18:30)</a>:</h4>
<p>vs</p>



<a name="215009244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215009244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215009244">(Oct 29 2020 at 18:31)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">            </span><span class="bp">self</span><span class="p">.</span><span class="n">replace_late_bound_regions</span><span class="p">(</span><span class="n">sig</span><span class="p">,</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="kd">let</span><span class="w"> </span><span class="n">reg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="bp">self</span><span class="p">.</span><span class="n">mk_region</span><span class="p">(</span><span class="n">ty</span>::<span class="n">ReLateBound</span><span class="p">(</span><span class="n">ty</span>::<span class="n">INNERMOST</span><span class="p">,</span><span class="w"> </span><span class="n">ty</span>::<span class="n">BrAnon</span><span class="p">(</span><span class="n">counter</span><span class="p">)))</span><span class="w"></span>
<span class="w">                </span><span class="n">counter</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w">                </span><span class="n">reg</span><span class="w"></span>
<span class="w">            </span><span class="p">})</span><span class="w"></span>
<span class="w">            </span><span class="p">.</span><span class="mi">0</span><span class="w"></span>
</code></pre></div>



<a name="215010696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215010696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215010696">(Oct 29 2020 at 18:44)</a>:</h4>
<p>I ran into this in my binders-refactor branch. Gonna try to switch it to start at 0</p>



<a name="215010820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215010820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215010820">(Oct 29 2020 at 18:45)</a>:</h4>
<p>Though, I also realized: <code>erase_late_bound_regions</code> should be returning <code>Binder&lt;T&gt;</code> too since it can still have late-bound types or consts</p>



<a name="215012867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215012867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215012867">(Oct 29 2020 at 19:01)</a>:</h4>
<p>uh...</p>



<a name="215012880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215012880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215012880">(Oct 29 2020 at 19:01)</a>:</h4>
<p>we used to always start from 1 I think maybe :)</p>



<a name="215012948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215012948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215012948">(Oct 29 2020 at 19:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215010820">said</a>:</p>
<blockquote>
<p>Though, I also realized: <code>erase_late_bound_regions</code> should be returning <code>Binder&lt;T&gt;</code> too since it can still have late-bound types or consts</p>
</blockquote>
<p>i think it would make more sense to panic on latebound types and consts here</p>



<a name="215013042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013042">(Oct 29 2020 at 19:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215010696">said</a>:</p>
<blockquote>
<p>I ran into this in my binders-refactor branch. Gonna try to switch it to start at 0</p>
</blockquote>
<p>wait, why?</p>



<a name="215013062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013062">(Oct 29 2020 at 19:03)</a>:</h4>
<p>hmm, or maybe not <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span> I can't think of where we may want to erase latebound lt but are fine with late bound types and consts</p>



<a name="215013132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013132">(Oct 29 2020 at 19:03)</a>:</h4>
<p>I mean, not that I'm intending to try to make it make use of <code>NonZero</code> for niches or whatnot; I'm just curious why changing this is a priority.</p>



<a name="215013406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013406">(Oct 29 2020 at 19:05)</a>:</h4>
<blockquote>
<p>I'm just curious why changing this is a priority.</p>
</blockquote>
<p>at least for me this is mostly just a weird quick one has to remember so I think it would make sense to remove it if it isn't too much work</p>



<a name="215013503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013503">(Oct 29 2020 at 19:06)</a>:</h4>
<p>So, an eventual goal (currently experimenting) with the chalk integration is that <code>Binder</code> will track the bound vars, rather than just being essentially a newtype. But if anonymizing late bound regions leaves the <code>0</code> index empty, then what do we put there?</p>



<a name="215013588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013588">(Oct 29 2020 at 19:06)</a>:</h4>
<p>But yeah, unless there's a <em>reason</em> for it, it just seems weird</p>



<a name="215013660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013660">(Oct 29 2020 at 19:07)</a>:</h4>
<p>okay. I can easily imagine putting some dummy instance at index 0. Or subtracting 1 from the value to do the indexing</p>



<a name="215013681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013681">(Oct 29 2020 at 19:07)</a>:</h4>
<p>but if people want it to start at 0, I don't have any objections.</p>



<a name="215013815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013815">(Oct 29 2020 at 19:08)</a>:</h4>
<p>So, so far when experimenting I've at an <code>Unknown</code> BoundVariableKind for cases where we've skipped some</p>



<a name="215013834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013834">(Oct 29 2020 at 19:08)</a>:</h4>
<p>but that seems less than ideal in the long run</p>



<a name="215013945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215013945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215013945">(Oct 29 2020 at 19:09)</a>:</h4>
<p>like I said, seems just a bit weird to keep around if there's no specific reason</p>



<a name="215038373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215038373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215038373">(Oct 29 2020 at 22:48)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/78545">#78545</a></p>



<a name="215038425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215038425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215038425">(Oct 29 2020 at 22:49)</a>:</h4>
<p>(wasn't sure who best to r? so just left it to random)</p>



<a name="215038752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215038752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215038752">(Oct 29 2020 at 22:53)</a>:</h4>
<p>I also realized that there's perhaps a little bit of a discrepancy between the number of how <code>BrAnon</code>s are numbered: Are they numbered where there can/should be both a <code>^0</code> for regions AND types/consts? Or are they numbered where a <code>^0</code> region means there shouldn't also be a <code>^0</code> type or const?</p>



<a name="215038881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215038881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215038881">(Oct 29 2020 at 22:55)</a>:</h4>
<p>I would assume the latter (and indeed that's what I would expect we want as we move towards Chalk integration), but <code>anonymize_late_bound_regions</code> won't respect type bound vars</p>



<a name="215041667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215041667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215041667">(Oct 29 2020 at 23:27)</a>:</h4>
<p>Most of this predates bound types/constants. I would expect <code>anonymize_late_bound_regions</code> to become <code>anonymize_bound_vars</code> eventually. I don't think that we create bound types/constants outside of the chalk lowering and canonicalization, both of which assign distinct numbers.</p>



<a name="215041920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215041920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215041920">(Oct 29 2020 at 23:31)</a>:</h4>
<p>oh</p>



<a name="215041922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/anonymize_late_bound_regions/near/215041922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/anonymize_late_bound_regions.html#215041922">(Oct 29 2020 at 23:31)</a>:</h4>
<p>hmm</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>